<configuration>
    <appSettings>
	<directorypaths>
		<!-- Directory path where standard FDT XML Schemas are stored -->
    <add key="FDTXMLSchemas" value=".\FDT XML Schemas" />
  </directorypaths>
	
	<SchemaValidation>
		<!-- Defines if XML schema validation should be done. Valid values are true or false-->
		<add key="DoValidation" value ="false" />
	</SchemaValidation>
	
	<settings>
		<!-- Defines the DTM threading model. Dependent on this setting DTMs are started in 
			 RuntimeFrame default thread, own DTM thread(s) or in another process. 
			 Valid settings are:
			 sharedThread	: DTMs and RuntimeFrame sharing the same thread. This is normally
							  also the application GUI thread (ST0 Apartment). This setting 
							  provides the fastest interation between RuntimeFrame<=>DTM and
							  DTM<=>DTM GUIs (ActiveX controls). 
							  However this model have one major drawback. DTMs can affect 
							  the default thread and thus RuntimeFrame and application. 
			 dtmThread		: One thread (Apartment) is started for all DTMs. DTMs can not
							  affect the default thread used by RuntimeFrame and application.
							  The interaction between RuntimeFrame<=>DTM and especially between
							  DTM<=>DTM GUI is slower. 
			 dtmProcessPool	: Seperate process is started for each DTM. The advantange of this
							  setting is that single DTM can't crash the application proccess.
							  However interaction between RuntimeFrame<=>DTM and 
							  DTM<=>DTM GUI become very slow.
			 sharedProcess  : DTMs and RuntimeFrame run in different processes. All DTMs share
			                  the same process so if a single DTM crashs its process the application
			                  process will not crash. But as all DTMs share the same process the
			                  crash will affect all of them.
			                  Similar to 'dtmProcessPool' the interaction between RuntimeFrame<=>DTM
			                  and DTM<=>DTM GUI becomes very slow. -->
		<add key="DTMThreadingModel" value="sharedThread"/>
		
		<!-- Defines the limit of max. running DTMs. Used to consolidate memory usage -->
		<add key="RunningDTMLimit" value="11" />
		<!--
			Defines if a DTM can be shut down while it is online.
			You can enable it by setting the value to eighter true or 1, everything else disables it.
			Used to consolidate memory usage.
		-->
		<add key="DTMAllowShutdownWhileOnline" value="true" />
		<!--
			Defines if the DTM is responsible for the TAG change or the frame application.
			If a DTM is responsible the TAG is extracted from the parameter XML of the DTM.
			Otherwise the frame application provides the TAGs for the DTMs and ignores different
			TAGs provided by DTM's parameter XML.
			If enabled the DTM is responsible, otherwise the frame application.
			You can enable it by setting the value to eighter true or 1, everything else disables it.
		-->
		<add key="DTMTagChangeAllowed" value="true" />

		<!-- Session management settings -->
		<sessionManagement>
			<!-- defines the location where session informations are stored -->
			<add key="SessionLocation" value=".\Sessions" />
			<!--
			 Defines the use of sessions for projects. Valid values are true or false.
			 Note:
					When you want to switch off the feature "Protected Mode"
					you have to set the value to false!
			-->
			<add key="UseSessions" value="false"/>
			<!-- defines the name of a file which can be used to store reporting infos.
				 That file will be used for sending problem reports -->
			<add key="ProblemReport" value="ProblemReport.txt" />
			<!-- defines the name of a file which can be used to store informations about DTMs which
				 were involved in accidentally shutdowns. -->
			<add key="AccidentallyShutdownedDTMs" value="unstable.xml" />
		</sessionManagement>
		
		<!-- DTM Bulkdata settings-->
		<dtmBulkData>
			<!-- Defines if bulk data should be stored in a fix path.
				 Valid settings are:
				 0: Defines that no fix root path has to be used.
				    The root path defined in the setting "RootPath" is ignored and the RuntimeFrame
				    creates a sub-directory for each project and stores DTM bulk data in it
				    (sub-directory name == project ID).
				    
				    Note:
							In this case the project name at least provided when creating a new project
							MUST start with an absolute path as it will be used to determine the root path.
				    
				 1: Defines that a fix root path has to be used.
				    That fix root path has to be defined within the setting "RootPath" as absolute directory.
			-->
			<add key="UseFixRootPath" value="1"/>
									
			<!-- Defines (fix) bulk data directory root path if "UseFixRootPath" is set to "1" -->
      <add key="RootPath" value=".\BulkData" />
		</dtmBulkData>	
	</settings>
	
	<timeouts>
		<!-- defines timeout for DTM shutdown requests (response to IDtm.PrepareToRelease() calls) -->
		<add key="DTMShutdownTimeout" value="30000"/>
		<!-- defines timeout for DTM offline requests (response to IDtm.PrepareToReleaseCommunication() calls) -->
		<add key="DTMOfflineRequestTimeout" value="30000"/>
		<!-- defines timeout for DTM close GUI requests (response to IDtmApplication::ExitApplication(), 
			 IDtmActiveXControl::PrepareToRelease() or IFdtChannelActiveXControl::PrepareToRelease() calls) -->
		<add key="DTMCloseGUIRequestTimeout" value="10000"/>
		<!-- defines delay time in ms to wait after DTM is switched to online mode (DTM state = communicationSet) 
		     before an operation is started which requires online connection (i.e. Upload/DownloadParameter). 
		     This is a workaround neccessary for DTMs which can not handle this request immediately after
		     online state switch. 
		     Value of <= 0 means that no delay time is needed. -->
		<add key="DTMOnlineOperationDelay" value="100"/>
	</timeouts>	
		
	<userMessage>
		<!-- Defines if private DTM dialogs are allowed. 
			 Note:	Private DTM dialogs may cause problems if DTMThreadingModel != sharedThread (i.e. Message Box
					may pop-up in the background ...) -->
		<add key="allowPrivateDTMDialogs" value="true"/>
		<!-- defines options for the calling of the User Message -->
		<add key="hasGUI" value="true"/>
		<!-- if no GUI is really present, or hasGUI = "0", use this result for FDTUserMessage.resultStatus-->
		<!-- can be notSupported, denied, systemResponse or ok -->
		<add key="resultStatus" value="denied"></add>
	</userMessage>

    </appSettings>
</configuration>